home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 May: Tool Chest / Developer CD Series Tool Chest (Apple Computer)(May 1999).iso / Tool Chest / Hardware / AV Tools / VUMeters / Sources / ARTA Includes / StandardSound.h < prev   
Encoding:
C/C++ Source or Header  |  1993-10-27  |  7.2 KB  |  188 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        StandardSound.h
  3.  
  4.     Contains:    Public interface to Standard Sound for Cathedral
  5.  
  6.     Copyright:    © 1992 by Apple Computer, Inc., all rights reserved.
  7.  
  8. */
  9.  
  10.  
  11. #ifndef __StandardSound__
  12. #define __StandardSound__
  13.  
  14. #include "DSPManager.h"
  15.  
  16. //==========================================================================================
  17. //    Patch Bay constants
  18. //==========================================================================================
  19. enum PatchPoint {kStdSndRecorder, kStdSndPreProcessor, kStdSndPlayer, kStdSndPostProcessor,
  20.         kStdSndInput, kStdSndOutput};
  21.  
  22. //==========================================================================================
  23. //    Default Sample Rates (Fixed samples/sec) and Frame Rates (Fixed milliseconds)
  24. //==========================================================================================
  25. #define kStdSnd24kHz     0x5DC00000
  26. #define kStdSnd32kHz     0x7D000000
  27. #define kStdSnd48kHz     0xBB800000
  28.  
  29. #define kStdSnd5ms        0x00050000
  30. #define kStdSnd10ms        0x000A0000
  31.  
  32. //==========================================================================================
  33. //    Stream IDs
  34. //==========================================================================================
  35. #define kStdSndSystemStream            -1
  36. #define kStdSndSystemInputStream    -2
  37. #define kStdSndSystemOutputStream    -3
  38.  
  39. //==========================================================================================
  40. //    Stream Status
  41. //==========================================================================================
  42.  
  43. typedef enum {
  44.     kStdSndStreamIsInactive,
  45.     kStdSndStreamDontKnowIfActive,
  46.     kStdSndStreamIsActive
  47. } DSPStreamStatus;
  48.     
  49. //==========================================================================================
  50. //    Structures
  51. //==========================================================================================
  52.  
  53. typedef unsigned long SoundStream;
  54.  
  55. #ifndef __cplusplus
  56. typedef enum PatchPoint PatchPoint;
  57. typedef struct StdSndStreamInfo StdSndStreamInfo;
  58. #endif
  59.  
  60. //==========================================================================================
  61. //    Error Constants
  62. //==========================================================================================
  63. #define kStdSndErr                        -750
  64. #define kNoDSPManagerErr                -751
  65. #define kNoDSPDeviceErr                    -752
  66. #define kOpenDeviceErr                    -753
  67. #define    kStdSndSampleRateNotAvailable    -754
  68. #define    kStdSndFrameRateNotAvailable    -755
  69. #define    kStdSndOptionNotAvailable        -756
  70. #define kStdSndBadStream                -757
  71. #define kStdSndBadIndex                    -758
  72. #define kStdSndBadInfoVersion            -759
  73.  
  74. //==========================================================================================
  75. // misc dispatcher constants & macros
  76. //==========================================================================================
  77. #define kStdSndGetIndexedStream                128
  78. #define kStdSndGetStreamCPUIndex            129
  79. #define kStdSndInsertTask                    130
  80. #define kStdSndGetStreamSections            131
  81. #define kStdSndTestSampleAndFrameRate        132
  82. #define kStdSndSetSampleAndFrameRate        133
  83. #define kStdSndGetStreamInfo                134
  84. #define kStdSndRemoveTask                    135
  85. #define kStdSndGetSampleAndFrameRate        136
  86.  
  87. #define kStdSndSetInputGain                    137
  88. #define kStdSndSetOutputAttenuation            138
  89. #define kStdSndGetInputGain                    139
  90. #define kStdSndGetOutputAttenuation            140
  91. #define kStdSndGetSampleTime                141
  92.  
  93. #define kStdSndReserved1                    142
  94. #define kStdSndGetMonitorGain                143
  95. #define kStdSndSetMonitorGain                144
  96.  
  97. #define kStdSndGetInputDeviceConnection        145
  98. #define kStdSndSignInCPUDevice                146
  99. #define kStdSndSignOutCPUDevice                147
  100. #define kStdSndTaskChangingState            148
  101. #define kStdSndGetStreamGivenTask            149
  102. #define kStdSndOnlySystemTasks                150
  103. #define kStdSndGetStreamOutputStatus        151
  104. #define kStdSndGetDeviceInfo                152
  105. #define kStdSndSetDeviceInfo                153
  106.  
  107. #define kInstallTasks                        154
  108. #define kInstallStream                        155
  109. #define kDSPLookupDeviceIndex                156
  110. #define kStdSndSetSystemStream                157
  111.  
  112. #define kStdSndInfoVersion                    1
  113.  
  114. struct StdSndStreamInfo {
  115.     short            stVersion;            // Version of this info struct
  116.     SoundStream        stStream;            // SoundStream to get info for
  117.     PatchPoint        stPatchPoint;        // Patch point to get info for
  118.     unsigned long    stFlags;            // Type flags
  119.     Fixed            stFrameRate;        // Frame rate in milliseconds
  120.     Fixed            stSampleRate;        // Sample rate in samples/sec
  121.     unsigned long    stTime;                // Time in samples
  122.     unsigned short    stCPUDeviceIndex;    // Device index for this patch point
  123.     Str31            stName;                // Name of this Stream
  124.     Handle            stICON;                // Icon of the Stream
  125. };
  126. typedef StdSndStreamInfo *StdSndStreamInfoPtr;
  127.  
  128. pascal OSErr StdSndGetIndexedStream(SoundStream *theStream, long index)
  129.        = DSPDispatch(kStdSndGetIndexedStream)
  130.  
  131. pascal OSErr StdSndGetStreamCPUIndex(SoundStream theStream, PatchPoint patchPoint, unsigned short *cpuDeviceIndex)
  132.        = DSPDispatch(kStdSndGetStreamCPUIndex)
  133.  
  134. pascal OSErr StdSndGetStreamInfo(StdSndStreamInfoPtr theSI)
  135.        = DSPDispatch(kStdSndGetStreamInfo)
  136.  
  137. pascal OSErr StdSndInsertTask(SoundStream theStream, DSPTaskRefNum theTask, PatchPoint patchPoint)
  138.        = DSPDispatch(kStdSndInsertTask)
  139.  
  140. pascal OSErr StdSndRemoveTask(SoundStream theStream, DSPTaskRefNum theTask, PatchPoint patchPoint)
  141.        = DSPDispatch(kStdSndRemoveTask)
  142.  
  143. pascal OSErr StdSndGetStreamSections(SoundStream theStream, DSPSectionRefNum *leftChannel, DSPSectionRefNum *rightChannel)
  144.        = DSPDispatch(kStdSndGetStreamSections)
  145.  
  146. pascal OSErr StdSndTestSampleAndFrameRate(SoundStream theStream, Fixed frame, Fixed sample)
  147.        = DSPDispatch(kStdSndTestSampleAndFrameRate)
  148.  
  149. pascal OSErr StdSndSetSampleAndFrameRate(SoundStream theStream, Fixed frame, Fixed sample)
  150.        = DSPDispatch(kStdSndSetSampleAndFrameRate)
  151.  
  152. pascal OSErr StdSndGetSampleAndFrameRate(SoundStream theStream, Fixed *frame, Fixed *sample)
  153.        = DSPDispatch(kStdSndGetSampleAndFrameRate)
  154.  
  155. pascal OSErr StdSndSetInputGain(SoundStream theStream, unsigned long leftGain, unsigned long rightGain)
  156.        = DSPDispatch(kStdSndSetInputGain)
  157.  
  158. pascal OSErr StdSndSetOutputAttenuation(SoundStream theStream, unsigned long leftAttenuation, unsigned long rightAttenuation)
  159.        = DSPDispatch(kStdSndSetOutputAttenuation)
  160.  
  161. pascal OSErr StdSndGetInputGain(SoundStream theStream, unsigned long *leftGain, unsigned long *rightGain)
  162.        = DSPDispatch(kStdSndGetInputGain)
  163.  
  164. pascal OSErr StdSndGetOutputAttenuation(SoundStream theStream, unsigned long *leftAttenuation, unsigned long *rightAttenuation)
  165.        = DSPDispatch(kStdSndGetOutputAttenuation)
  166.  
  167. pascal OSErr StdSndGetSampleTime(SoundStream theStream, unsigned long *time)
  168.        = DSPDispatch(kStdSndGetSampleTime)
  169.  
  170. pascal OSErr StdSndGetMonitorGain(SoundStream theStream, Fixed *leftGain, Fixed *rightGain)
  171.        = DSPDispatch(kStdSndGetMonitorGain)
  172.  
  173. pascal OSErr StdSndSetMonitorGain(SoundStream theStream, Fixed leftGain, Fixed rightGain)
  174.        = DSPDispatch(kStdSndSetMonitorGain)
  175.  
  176. pascal OSErr StdSndGetInputDeviceConnection(SoundStream theStream, short *deviceStatus)
  177.        = DSPDispatch(kStdSndGetInputDeviceConnection)
  178.  
  179. pascal OSErr StdSndGetStreamOutputStatus(SoundStream theStream, DSPStreamStatus *streamStatus)
  180.        = DSPDispatch(kStdSndGetStreamOutputStatus)
  181.  
  182. pascal OSErr StdSndGetDeviceInfo(SoundStream theStream, OSType infoType, Ptr infoData)
  183.        = DSPDispatch(kStdSndGetDeviceInfo)
  184.        
  185. pascal OSErr StdSndSetDeviceInfo(SoundStream theStream, OSType infoType, Ptr infoData)
  186.        = DSPDispatch(kStdSndSetDeviceInfo)
  187. #endif
  188.